#include <vector>
#include <map>

using namespace std;

// 暴力法
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        for(int i = 0; i < nums.size(); i++)
        {
            for(int j = i+1; j < nums.size(); j++)
            {
                if(nums[i]+nums[j]==target)
                    return {i, j};
            }
        }

        return {};
    }
};

// 使用哈希表
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        map<int, int> hash;
        for(int i = 0; i < nums.size(); i++)
        {
            if(hash.count(nums[i])>0)
                return {hash[nums[i]],i};
            hash.insert(pair<int,int>(target-nums[i],i));
        }
        return {};
    }
};